package com.foton.designmodel.proxy.impl;


import com.foton.designmodel.proxy.SystemFileManageApi;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileOutputStream;


/**
 * 阿里云文件管理实现方式
 * 针对大文件，视频格式文件，进行存储到aliyun oss【文件云存储】
 * 文件后缀格式为：mp4,
 */
@Component("aliyunOssFileManage")
public class AliyunOssFileManageImpl implements SystemFileManageApi {

    @Value("${aliyunOss.dir}")
    private  String aliyunOssPath;


    @Override
    public String upload(byte[] fileBytes, String fileExtensionName) {

        String storePath = null;
        try {
            storePath = aliyunOssPath+fileExtensionName;
            File targetFile = new File(storePath);
            // 如果目录不存在，则创建
            if (!targetFile.getParentFile().exists()) {
                targetFile.getParentFile().mkdirs();
            }
            try(FileOutputStream fos = new FileOutputStream(targetFile)){
                fos.write(fileBytes);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return storePath;
    }
}
